﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CarLoanSystem.Entity;

namespace CarLoanSystem
{
    public partial class frmEditEmployee : Form
    {
        private EmployeeItem empItem;
        private string mode;
        public frmEditEmployee()
        {
            InitializeComponent();
            mode = "Add";
        }

        public frmEditEmployee(string id)
        {
            InitializeComponent();
            mode = "Edit";
            empItem = DAL.EmployeeInfoDAL.LoadEmployee(id);
            this.txtLastName.Text = empItem.EMPLOYEE_LASTNAME.ToString();
            this.txtName.Text = empItem.EMPLOYEE_NAME.ToString();
            this.txtPresonalId.Text = empItem.EMPLOYEE_PERSONAL_ID.ToString();
            this.txtUserName.Text = empItem.USERNAME.ToString();
            this.txtPassword.Text = empItem.PASSWORD.ToString();
            this.txtAge.Text = empItem.EMPLOYEE_AGE.ToString();
            this.txtGroup.Text = empItem.EMPLOYEE_GROUP.ToString();
            this.cbbPosition.SelectedValue = empItem.EMPLOYEE_POSITION.ToString();
            this.txtTel.Text = empItem.EMPLOYEE_TEL.ToString();
            this.txtUserName.Enabled = false;
            this.txtPassword.Enabled = false;
        }

        private void setData()
        {
            empItem.EMPLOYEE_LASTNAME = this.txtLastName.Text;
            empItem.EMPLOYEE_NAME = this.txtName.Text;
            empItem.EMPLOYEE_PERSONAL_ID = this.txtPresonalId.Text;
            empItem.USERNAME = this.txtUserName.Text;
            empItem.EMPLOYEE_AGE = Convert.ToInt32(this.txtAge.Text);
            empItem.EMPLOYEE_GROUP = this.txtGroup.Text;
            empItem.EMPLOYEE_POSITION = this.cbbPosition.SelectedValue.ToString();
            empItem.EMPLOYEE_TEL = this.txtTel.Text;
            empItem.PASSWORD = this.txtPassword.Text;
        }

        private bool validateTextBox()
        {
            if (this.txtUserName.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่ชื่อผู้ใช้งาน", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            else if (this.txtPassword.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่รหัสผ่าน", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            else if (this.txtName.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่ชื่อ", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            else if (this.txtLastName.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่นามสกุล", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            else if (this.txtPresonalId.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่เลขที่บัตรประชาชน", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            else if (this.txtAge.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่อายุ", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            else if (this.txtTel.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่เบอร์ติดต่อ", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            else if (this.txtGroup.Text.Equals(string.Empty))
            {
                MessageBox.Show("กรุณาใส่กลุ่มพนักงาน", "ใส่ข้อมูลไม่ครบ");
                return false;
            }
            return true;
        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                if (validateTextBox())
                {
                    if (empItem != null)
                    {
                        setData();
                        if (DAL.EmployeeInfoDAL.Update(empItem))
                        {
                            MessageBox.Show("อัพเดทข้อมูลสำเร็จ", "อัพเดทข้อมูลพนักงาน");
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("อัพเดทข้อมูลไม่สำเร็จ", "อัพเดทข้อมูลพนักงาน");
                        }
                    }
                    else
                    {
                        if (!DAL.EmployeeInfoDAL.CheckUser(this.txtUserName.Text))
                        {
                            empItem = new EmployeeItem();
                            setData();
                            if (DAL.EmployeeInfoDAL.Insert(empItem))
                            {
                                MessageBox.Show("บันทึกข้อมูลสำเร็จ", "บันทึกข้อมูลพนักงาน");
                                this.Close();
                            }
                            else
                            {
                                MessageBox.Show("บันทึกข้อมูลไม่สำเร็จ", "อัพเดทข้อมูลพนักงาน");
                            }
                        }
                        else 
                        {
                            MessageBox.Show("ชื่อผู้ใช้งานมีผู้อื่นใช้แล้ว กรุณาเปลี่ยนชื่อผู้ใช้งาน", "ชื่อผู้ใช้งานซ้ำ");
                            this.txtUserName.Text = string.Empty;
                            this.txtUserName.Focus();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Error");
            }
        }

        private void btnCancle_Click(object sender, EventArgs e)
        {
            if (mode.Equals("Add"))
            {
                this.txtLastName.Text = string.Empty;
                this.txtName.Text = string.Empty;
                this.txtPresonalId.Text = string.Empty;
                this.txtUserName.Text = string.Empty;
                this.txtAge.Text = string.Empty;
                this.txtGroup.Text = string.Empty;
                this.cbbPosition.SelectedIndex = 0;
                this.txtTel.Text = string.Empty;
                this.txtPassword.Text = string.Empty;
            }
            else if (mode.Equals("Edit"))
            {
                this.Close();
            }
        }
    }
}
